package com.tsy.server.manage.service;

import com.tsy.server.manage.model.dto.CapacityDeviceDTO;
import com.tsy.server.manage.model.dto.LiveTypeDTO;
import com.dji.sdk.cloudapi.device.VideoId;
import com.dji.sdk.common.HttpResultResponse;

import java.util.List;

/**
 * @author sean.zhou
 * @date 2021/11/19
 * @version 0.1
 */
public interface ILiveStreamService {

    /**
     * 获取该工作空间内具备直播能力的无人机数据。
     * @param workspaceId 工作空间ID
     * @return
     */
    List<CapacityDeviceDTO> getLiveCapacity(String workspaceId);

    /**
     * 通过发布 MQTT 消息发起直播。
     * @param liveParam 点播所需参数
     * @return
     */
    HttpResultResponse liveStart(LiveTypeDTO liveParam);

    /**
     * 通过发布 MQTT 消息停止直播。
     * @param videoId 视频ID
     * @return
     */
    HttpResultResponse liveStop(VideoId videoId);

    /**
     * 通过发布 MQTT 消息调整直播清晰度。
     * @param liveParam 参数
     * @return
     */
    HttpResultResponse liveSetQuality(LiveTypeDTO liveParam);

    /**
     * 直播过程中切换设备镜头。
     * @param liveParam 参数
     * @return
     */
    HttpResultResponse liveLensChange(LiveTypeDTO liveParam);
}
